1時間プログラミング 010 CSVをJSONに変換する
#1時間プログラミング
概要
CSVをJSONに変換する
CSVの行は、ヘッダーの列名と値を対応させたオブジェクトに変換される
所要時間: 1時間
使い方
code:samples/liz-bluebird.csv
氏名,担当楽器
鎧塚みぞれ,オーボエ
傘木希美,フルート
code:terminal
$ cat samples/liz-bluebird.csv | deno run mod.ts | jq '.'
[
{
"氏名": "鎧塚みぞれ",
"担当楽器": "オーボエ"
},
{
"氏名": "傘木希美",
"担当楽器": "フルート"
}
]
実装
TS(Deno)で作成する
標準入力から文字列を読み込む
code:ts
import { readAllSync } from "https://deno.land/std@0.161.0/streams/conversion.ts";
const readInput = (): string => {
const content = readAllSync(Deno.stdin);
const decoder = new TextDecoder();
return decoder.decode(content);
};
文字列をパースしてCSVに変換する
code:ts
const csv = parse(input);
CSVをJSONに変換する
code:ts
const csvToJsonObject = (csv: string[][]): Record<string, unknown>[] => {
const header, ...rows = csv;
return rows.map((row) => {
return row.reduce((acc, col, i) => {
const prop = headeri;
return { ...acc, prop: col };
}, {});
});
};
感想
1時間プログラミングの規模だとDenoは非常に使いやすい